#pragma once

#include "Point3D.h"

class Plane3D
{
private:
    double avg(double in0, double in1, double input);
    void avg(Point3D in0, Point3D in1, double input, Point3D &output);
    
public:
    Point3D a,b,c,d;
    
    Plane3D();
    Plane3D(Point3D a,Point3D b,Point3D c,Point3D d);
    ~Plane3D();
    
    Plane3D& set(Point3D a,Point3D b,Point3D c,Point3D d);
    
    void drawSolid();
    void drawSolid_color(int hexColor);
    void drawTessellated(int tessCountX, int tessCountY);
    void drawTessellatedWireframe(int tessCountX, int tessCountY);
    void drawPerim();
    void drawPerim_color(int hexColor);
};